@ner
1年前 提问
2个回答
SQL 注入如何防御
Anna艳娜
1年前
官方采纳
sql 注入防范措施有以下这些:
把应用服务器的数据库权限降至最低,尽可能地减少 SQL 注入攻击带来的危害。
避免网站打印出SQL错误信息,比如类型错误、字段不匹配等,把代码里的SQL语句暴露出来,以防止攻击者利用这些错误信息进行SQL注入。
对进入数据库的特殊字符(’’尖括号&*;等)进行转义处理,或编码转换。
所有的查询语句建议使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中,即不要直接拼接SQL语句。
在测试阶段,建议使用专门的 SQL 注入检测工具进行检测。网上有很多这方面的开源工具,例如sqlmap、SQLninja等。
善用数据库操作库,有些库包可能已经做好了相关的防护,我们只需阅读其文档,看是否支持相应的功能即可。
齐士忠
1年前
防御SQL注入先在构造动态 SQL 语句时,一定要使用类安全(type-safe)的参数加码机制。第二在部署应用前,始终要做安全审评(security review)。第三千万别把敏感性数据在数据库里以明文存放。第四确认编写了自动化的单元测试,来特别校验你的数据访问层和应用程序不受 SQL 注入攻击。第五锁定你的数据库的安全,只给访问数据库的 web 应用功能所需的最低的权限。最后就是很多新手从网上下载 SQL 通用防注入系统的程序,在需要防范注入的页面头部用 来防止别人进行手动注入测试